/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.unal.bioingenium.kbmed.knowledge.mapping.api;

import co.edu.unal.bioingenium.kbmed.knowledge.vo.DescriptorData;
import co.edu.unal.bioingenium.kbmed.knowledge.mapping.vo.DescriptorScoresMap;
import java.util.List;
import java.util.Map;
import uk.ac.shef.wit.simmetrics.similaritymetrics.AbstractStringMetric;

/**
 *
 * @author lariverosc
 */
public interface Mapping {

    /**
     * 
     */
    public void init();

    /**
     * 
     * @param text
     * @return
     */
    public Map<String, List<DescriptorData>> doMapping(String text);

    /**
     * 
     * @param sentence
     * @return
     */
    public List<DescriptorData> mapSentence(String sentence);

    /**
     * @param:
     * @return 
     * @return:
     * @param scoresMap 
     */
    public List<DescriptorData> evaluateCandidates(DescriptorScoresMap scoresMap);

    /**
     * @param:
     * @return:
     * @return 
     * @param text 
     */
    public DescriptorScoresMap buildCandidateDescriptorSet(String text);

    /**
     * 
     * @return
     */
    public double getSIMILARITY_THRESHOLD();

    /**
     * 
     * @param SIMILARITY_THRESHOLD
     */
    public void setSIMILARITY_THRESHOLD(double SIMILARITY_THRESHOLD);

    /**
     * 
     * @return
     */
    public double getSTRING_METRIC_THRESHOLD();

    /**
     * 
     * @param STRING_METRIC_THRESHOLD
     */
    public void setSTRING_METRIC_THRESHOLD(double STRING_METRIC_THRESHOLD);

    /**
     * 
     * @return
     */
    public AbstractStringMetric getStringMetric();

    /**
     * 
     * @param verbose 
     */
    public void setVerbose(boolean verbose);

}
